home *** CD-ROM | disk | FTP | other *** search
/ The Arsenal Files 8 / The Arsenal Files Collection #8 (Arsenal Computer) (1996).ISO / g_games / bricks.zip / BRICKS.BAS < prev    next >
BASIC Source File  |  1996-07-05  |  3KB  |  172 lines

  1. DECLARE SUB drawbricks ()
  2.  
  3. lives = 4
  4.  
  5. TYPE balltype
  6.   rise AS LONG
  7.   left AS LONG
  8.   ydir AS LONG
  9.   xdir AS LONG
  10.   x AS LONG
  11.   y AS LONG
  12. END TYPE
  13.  
  14. DIM ball AS balltype
  15.  
  16. CLS
  17. DIM SHARED bricks(19, 10)
  18.  
  19. FOR i = 1 TO 19
  20.   FOR j = 1 TO 10
  21.     bricks(i, j) = 1
  22.   NEXT j
  23. NEXT i
  24.  
  25. restart:
  26. ball.x = 40
  27. ball.y = 12
  28. ball.rise = 1
  29. ball.left = 1
  30. ball.ydir = 1
  31. ball.xdir = 1
  32. pad = 45
  33.  
  34. DO
  35.  
  36.  
  37. LOCATE 20, 1
  38. PRINT "Lives: "; lives
  39. PRINT "Score: "; score
  40.  
  41.  
  42. t = t + 1
  43.  
  44. IF t = 80 THEN
  45.  
  46.   LOCATE ball.y, ball.x
  47.   PRINT " "
  48.  
  49.   IF ball.xdir = 1 THEN
  50.     ball.x = ball.x + ball.left
  51.   ELSE
  52.     ball.x = ball.x - ball.left
  53.   END IF
  54.  
  55.   IF ball.ydir = 1 THEN
  56.     ball.y = ball.y + ball.rise
  57.   ELSE
  58.     ball.y = ball.y - ball.rise
  59.   END IF
  60.  
  61.  
  62.   IF ball.y < 11 THEN
  63.     IF ball.x < (4 * 19) AND ball.x > 0 THEN
  64.       IF bricks(INT((ball.x - 1) / 4) + 1, ball.y) = 1 THEN
  65.         bricks(INT((ball.x - 1) / 4) + 1, ball.y) = 0
  66.         score = score + 100
  67.        
  68.         IF ball.ydir = -1 THEN
  69.           ball.ydir = 1: ball.y = ball.y + ball.rise
  70.         ELSE
  71.           ball.ydir = -1: ball.y = ball.y - ball.rise
  72.         END IF
  73.  
  74.         SELECT CASE (ball.x / 4) - FIX(ball.x / 4)
  75.           CASE 0:
  76.             ball.left = ball.left
  77.             ball.xdir = 1
  78.           CASE .25:
  79.             ball.left = ball.left
  80.             ball.xdir = -1
  81.         END SELECT
  82.  
  83.         CLS
  84.        
  85.         LOCATE 12, 1
  86.         PRINT (ball.x / 4) - FIX(ball.x / 4)
  87.                                
  88.         
  89.         drawbricks
  90.       END IF
  91.     END IF
  92.   END IF
  93.  
  94.   t = 0
  95.  
  96.  
  97.   LOCATE 22, pad - 1
  98.   PRINT " -------- "
  99.  
  100. END IF
  101.  
  102. IF ball.x < 4 THEN ball.xdir = 1
  103. IF ball.x > 76 THEN ball.xdir = -1
  104. IF ball.y < 2 THEN ball.ydir = 1
  105. IF ball.y > 21 THEN
  106.   IF ball.x >= pad AND ball.x <= pad + 8 THEN
  107.     ball.ydir = -1
  108.     SELECT CASE ball.x - pad
  109.       CASE 0:
  110.         ball.left = 4
  111.         ball.xdir = -1
  112.       CASE 1:
  113.         ball.left = 3
  114.         ball.xdir = -1
  115.       CASE 2:
  116.         ball.left = 2
  117.         ball.xdir = -1
  118.       CASE 3:
  119.         ball.left = 1
  120.         ball.xdir = -1
  121.       CASE 4:
  122.         ball.left = 0
  123.         ball.xdir = 1
  124.       CASE 5:
  125.         ball.left = 1
  126.         ball.xdir = 1
  127.       CASE 6:
  128.         ball.left = 2
  129.         ball.xdir = 1
  130.       CASE 7:     
  131.         ball.left = 3
  132.         ball.xdir = 1
  133.     END SELECT
  134.  
  135.   ELSE
  136.     lives = lives - 1
  137.     IF lives < 1 THEN END
  138.     GOTO restart
  139.   END IF
  140. END IF
  141.   
  142.  
  143.  
  144. LOCATE INT(ball.y), INT(ball.x)
  145. PRINT "o"
  146.  
  147.  
  148. SELECT CASE INKEY$
  149.   CASE "6": pad = pad + 1:
  150.   CASE "4": pad = pad - 1:
  151. END SELECT
  152.           
  153. IF pad < 2 THEN pad = 2
  154. IF pad > 70 THEN pad = 70
  155.  
  156. LOCATE 22, pad - 1
  157. PRINT " -------- "
  158.  
  159. LOOP
  160.  
  161. SUB drawbricks
  162. FOR i = 1 TO 19
  163.   FOR j = 1 TO 10
  164.     IF bricks(i, j) = 1 THEN
  165.       LOCATE j, 4 * i - 3
  166.       PRINT "[--]"
  167.     END IF
  168.   NEXT j
  169. NEXT i
  170. END SUB
  171.  
  172.